﻿@model IEnumerable<ResultTK>
    @using Kendo.Mvc.UI

@( Html.Kendo().Grid(Model)
                .Name("griddata")
                .Pageable(page => page
                        .ButtonCount(7)
                        .Info(true)
                        .Refresh(true)
                            .Messages(mess => mess
                                     .Display("{0}-{1} của {2} bản ghi.")
                                            .Empty("Không có dữ liệu")
                                            .Refresh("Làm mới")
                                            .First("Trang đầu tiên")
                                            .Last("Trang cuối cùng")
                                            .Next("Trang tiếp")
                                            .Previous("Trang trước")
                                      )
                                     .Input(true)
                                            .Messages(mess =>
                                            {
                                                mess.Of("của {0}");
                                                mess.Page("Trang");
                                            })

                                )
                            .Columns(columns =>
                                {
                                    //columns.ClientTemplate("<input type='checkbox' #= CheckboxColumn? checked='checked': checked='' # class='chkbx' />");
                                    columns.Bound(p => p.MaTS).Width(90).Locked(true).Lockable(false).Title("Mã TS");
                                    columns.Bound(p => p.HoDem).Width(150).Locked(true);
                                    columns.Bound(p => p.Ten).Width(150).Locked(true);
                                    columns.Bound(p => p.GioiTinh).Width(110).Title("Giới tính");
                                    columns.Bound(p => p.NgaySinh).Width(110).Lockable(false);
                                    columns.Bound(p => p.SoDienThoai).Width(110).Lockable(false).Title("Điện thoại");
                                    columns.Bound(p => p.Email).Width(200).Lockable(false);
                                    columns.Bound(p => p.TenDanToc).Width(110).Lockable(false).Title("Dân tộc");
                                    columns.Bound(p => p.TenHuyen).Width(150).Lockable(false).Title("Huyện/Quận");
                                    columns.Bound(p => p.TenTinh).Width(150).Lockable(false).Title("Tỉnh/TP");
                                    columns.Bound(p => p.DiaChi).Width(250).Lockable(false);
                                    columns.Bound(p => p.TenTinhTruong).Width(150).Lockable(false).Title("Tỉnh/TP-Trường");
                                    columns.Bound(p => p.TenTruong).Width(250).Lockable(false).Title("Trường THPT");
                                    columns.Bound(p => p.DiemLop10).Width(130).Lockable(false);
                                    columns.Bound(p => p.DiemLop11).Width(130).Lockable(false);
                                    columns.Bound(p => p.DiemLop12).Width(130).Lockable(false);
                                    columns.Bound(p => p.DiemTBTHPT).Width(140).Lockable(false);
                                    columns.Bound(p => p.DiemTBTN).Width(130).Lockable(false);
                                    columns.Bound(p => p.TinhTrangTotNghiep).Width(110).Lockable(false).Title("Tốt nghiệp");
                                    columns.Bound(p => p.TenDoiTuong).Width(200).Lockable(false).Title("Đối tượng ưu tiên");
                                    columns.Bound(p => p.TenHeDaoTao).Width(150).Lockable(false);
                                    columns.Bound(p => p.TenKhoiThi).Width(110).Lockable(false);
                                    columns.Bound(p => p.TenNganh).Width(250).Lockable(false);
                                    columns.Bound(p => p.TenChuyenNganh).Width(250).Lockable(false);
                                    columns.Bound(p => p.NgayDangKy).Width(140).Lockable(false);
                                    columns.Bound(p => p.NgayDongTien).Width(140).Lockable(false);
                                    columns.Bound(p => p.NgayHoanThanhDK).Width(140).Lockable(false);

                                    columns.Template(@<text>Sửa</text>).ClientTemplate("<a class='k-button k-button-icontext' href='"  + Url.Action("EditRegistration", "CandidateManagement") + "/#=MaTS#'><span class='k-icon k-edit'></span>Sửa</a>").Title("Sửa");
                                    columns.Command(command =>
                                    {
                                        //command.Edit().Text("Sửa").UpdateText("Cập nhật");
                                        command.Destroy().Text("Xóa");
                                    })
                                        .Title("Xóa");
                                })
                            .Scrollable(scrollable => scrollable.Height("auto"))
                            .Reorderable(reorderable => reorderable.Columns(true))
                            .Resizable(resizable => resizable.Columns(true))
                    // Sửa kiểu popup
                    .Editable(editable =>
                    {
                        //editable.Mode(GridEditMode.PopUp).TemplateName("CommuneEditor");
                        editable.ConfirmDelete("Bạn có muốn xóa? (Lưu ý: các thông tin về điểm, tài khoản... sẽ bị xóa theo!)");
                        editable.Window(window =>
                        {
                            //window.Width(450);

                            window.Title("Thêm/sửa dữ liệu");
                            window.Animation(false);
                        });

                        editable.DisplayDeleteConfirmation("Bạn có muốn xóa? (Lưu ý: các thông tin về điểm, tài khoản... sẽ bị xóa theo!)");
                    })
                    .Sortable()    // Cho phép sắp xếp dữ liệu
                    // Cho phép lọc dữ liệu
                    .Filterable(filterable => filterable
                            .Messages(mess => mess
                                .And("Và")
                                .Clear("Xóa")
                                .Filter("Lọc")
                                .Info("Điều kiện lọc tìm kiếm")

                                )
                                .Extra(false)

                            .Operators(operators => operators
                                .ForString(str => str.Clear()
                                    .StartsWith("Bắt đầu với")
                                    .IsEqualTo("Đúng bằng")
                                    .IsNotEqualTo("Không bao gồm")
                                    .Contains("Chứa ký tự")
                                )
                                .ForNumber(num => num
                                        .Clear()
                                        .IsGreaterThan("Lớn hơn")
                                        .IsEqualTo("Bằng")
                                        .IsNotEqualTo("Nhỏ hơn")
                    )))

                // Cài đặt nguồn dữ liệu
                .DataSource(dataSource => dataSource
                        .Ajax()   // Mọi thao tác thực hiện thông qua Ajax
                        .ServerOperation(false) // Ko cho gửi request bằng cách load lại trang mà thông qua Ajax

                        .PageSize(15)   // Số row hiển thị trên Grid
                        .Model(model =>
                            {
                                model.Id(p => p.MaTS);  // Chỉ ra khóa của Grid
                                model.Field(p => p.MaTS).Editable(false);
                                //model.Field(p => p.MaKhoa).DefaultValue(1);
                            }
                            )
                        .Sort(item =>
                        {
                            // Mặc định khi load dữ liệu lên Grid sẽ sắp xếp giảm theo Id
                            item.Add(data => data.MaTS).Descending();
                        })
                    // Cài đặt các sự kiện khi thay đổi dữ liệu
                        .Events(events =>
                        {
                            events.Error("onError");
                            //events.Change("onRequestStart");
                            //events.Sync("sync_handler");
                            //events.Push("Success");
                            //events.Change("Success");
                            events.RequestEnd("onRequestEnd");
                            //events.RequestStart("onRequestStart");
                        })
                    // Gán Action khi thêm dữ liệu
                                    //.Create(update => update.Action( "Default", new { controller = "Common", action = "PhieuDangKy", Layout = "" }, aj))
                                //.Create(update => update.Action("EditingPopup_CreateCandidateList", "CandidateManagement"))
                    // Gán Action khi đổ dữ liệu lên Grid
                            .Read(read => read.Action("EditingPopup_ReadCandidateList", "CandidateManagement"))
                // Sửa
                            .Update(update => update.Action("EditingPopup_UpdateCandidateList", "CandidateManagement"))
                // Xóa
                            .Destroy(update => update.Action("EditingPopup_DestroyCandidateList", "CandidateManagement"))
                )
                .Excel(excel => excel
                .FileName("Thí sinh.xlsx")
                .Filterable(true)
                .AllPages(true)
                .ProxyURL(Url.Action("ExportCandidate", "griddata")))
                .ToolBar(toolbar =>
                    {
                        toolbar.Excel().Text("Xuất Excel");
                    })
        // Cài đặt thanh Menu bên trên Grid

                                                                                        .Events(events =>
                                                                                        {
                                                                                            //events.Change("onEdit");
                                                                                            //events.Cancel("onEdit");
                                                                                            events.Edit("onEdit");
                                                                                            //events.ColumnLock
                                                                                        })
        //.ClientDetailTemplateId("client-template")
)

